public class Test04 {
    public static void fun1(){
        throw new NullPointerException("空指针异常");
    }

    public static void fun2(){
        try{
            fun1();
        }catch(IndexOutOfBoundsException e){
            System.out.println("下标溢出错误");
        }
    }

    public static void main(String[] args) {
        try{
            fun2();
        }catch(NullPointerException e){
            System.out.println(1111111);
        }

        /*
        catch 的时候 ， 可以是当前异常类型 ， 也可以是夫类型 。 抛出子类 catch 父类也是可以的 NullPointerException 是 RuntimeException 的子类
        catch 是从上到下的 ， 一定是子类在前父类在后
        throwable 代表整个异常系统 ，虽然可以捕获所有异常 ， 但是无法区分异常类型
         */
    }
}
